\documentclass{scrartcl}
\usepackage{svn-multi}
\svnidlong
{$HeadURL: http://se-project-pflichtenheft.googlecode.com/svn/trunk/Pflichtenheft/pflichtenheft.tex $}
{$LastChangedDate: 2012-11-25 14:18:17 +0000 (Sun, 25 Nov 2012) $}
{$LastChangedRevision: 19 $}
{$LastChangedBy: fabian.baumeister@gmail.com $}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{caption}

\begin{document}
\section*{Pflichtenheft: Analyse-Software}
\begin{tabbing}
	\hspace*{0.5\textwidth}\= \kill
	Version: 1.\svnfilerev \` \svnfileday .\svnfilemonth .\svnfileyear
\end{tabbing}
Auftraggeber: Gruppe 1: Yannick Heeren, Christoph Engels\\
Auftragnehmer: Gruppe 8: Myriam Czekala, Christoph Barsch, Fabian Baumeister

\section{Zielbestimmung}
Analyse-Software zur grafischen Darstellung und Auswertung von Daten und Funktionen. Das Produkt soll im Betriebsmanagement eingesetzt werden.

\section{Musskriterien}
Eine Funktion soll eingegeben werden können.\\
Die eingegebene Funktion soll geplottet werden können.\\
Die Funktion soll analytisch ausgewertet werden.\\
Eine zweite Funktion soll in ein Koordinatensystem geplottet werden können.\\
Die beiden Funktionen sollen verglichen werden.\\
Es sollen Wertepaare aus einer CSV-Datei eingelesen werden.\\
Es sollen Werte in eine CSV-Datei exportiert werden können.
\section{Wunschkriterien}
Es sollen mehrere Sitzungen in Tabs geöffnet werden können.\\
Die Punkte, die aus einer CSV-Datei gelesen und geplottet wurden, sollen editierbar sein.\\
Es sollen neue Punkte durch Klicken auf die Grafik eingefügt werden können.\\
Bei geplotteten Funktionen soll entsprechend der Cursorposition der x-Wert ermittelt und der y-Wert der Funktion dazu angezeigt werden.

\section{Produkteinsatz}
Das Programm soll für ungeschultes Personal im Betriebsmanagement einer Firma zur Kostenkalkulation eingesetzt werden.\\
Das Produkt soll auf einem Windows- oder Unix-Betriebssystem mit vorinstallierter Java-Version 6 oder höher funktionieren.
Der bei den Produktfunktionen angesprochene CSV-Export soll kompatibel zu Microsoft Excel ab Version 2003 sein.

\section{Produktfunktionen}
\begin{description}
	\item[F20]Einlesen der Parameter der verschiedenen Funktionstypen über mehrere Textfelder.
	\begin{description}
		\item[F20-10]Polynome vom Typ \(\sum_{i=0}^{n} a_i * x^i\)
		\item[F20-20] die 12 trigonometrischen Funktionen
		\item[F20-30] Wurzelfunktion
		\item[F20-40] e-Funktion, Logarithmus zu den Basen e und 10
		\item[Darstellung]Dezimaltrennzeichen ist der Punkt, Zifferngruppierungen werden nicht vorgenommen\\
Für \(x^2\): x\textasciicircum2\\
Klammerung mit ( und )\\
\(\sqrt{3}\): sqrt(3)\\
\(e^2\): e\textasciicircum2\\
\(\log_{e}(5)\): ln(5)\\
\(\log_{10}(5)\): lg(5)\\
Trigonometrische Funktionen von x: \(\sin(x) ,\  \cos(x) ,\  \tan(x) ,\  \arcsin(x) ,\ \dots ,\\ \sinh(x) ,\ \dots ,\ \mathrm{arsinh(x)} ,\ \dots \) \\
Konstante \(\pi\): PI
	\end{description}
	\item[F30]Die erfasste Funktion soll geplottet werden.
	\begin{description}
		\item[F30-10]Der Benutzer soll ein Intervall eingeben können, in dem geplottet werden soll.
		\item[F30-20]Je nach Intervalllänge wird eine passende Schrittweite berechnet.
		\item[F30-30]Auf Grundlage dieser Schrittweite werden Punkte der Funktion berechnet.
		\item[F30-40]Wichtige Punkte [F40] werden auch eingezeichnet.
		\item[F30-50] Bereiche unter oder über bestimmten Grenzwerten färben. [LF40-80]
		\item[F30-60]Das Plotten einer weiteren Funktion im selben Fenster soll möglich sein. [LF50]
	\end{description}
	\item[F40]Die Funktion soll analytisch ausgewertet werden
	\begin{description}
		\item[F40-10] Extremstellen (lokal und global) 
		\item[F40-20] Nullstellen
		\item[F40-30] Y-Achsenabschnitt bestimmen
		\item[F40-40] Da gebrochen-rationale Funktionen nicht unterstützt werden, ist die Betrachtung von Pol-, Unendlichkeitsstellen und Definitionslücken nicht erforderlich.
		\item[F40-60] Ableitungen an einer Stelle
		\item[F40-70] Fläche unter Graph integrieren
		\item[F40-71] eventuell Benutzereingabe des zu integrierenden Bereichs
		\item[F40-90]Randbetrachtung
	\end{description}
	\item[F60]Beide Funktionen sollen verglichen werden.
	\begin{description}
		\item[F60-10]Es sollen die Schnittstellen beider Funktionen berechnet werden
		\item[F60-20]Einfärben der Flächen zwischen Erlös- und Kostenfunktion. Gewinn wird dabei grün markiert, der Verlust rot.
		\item[F60-21]eventuell kann der Benutzer ein Intervall angeben, in dem der Wert des Integrals zwischen den Funktionen berechnet wird.
		\item[F60-30]Die Differenzfunktion der beiden Funktionen soll gebildet werden.
		\item[F60-31]eventuell wird die Differenzfunktion in einer neuen Sitzung dargestellt.
	\end{description}
		\item[F70]Es sollen Wertepaare aus einer CSV-Datei eingelesen werden können
		\begin{description}
			\item[F70-10]Ein Wertepaar pro Zeile
			\item[F70-20] Es soll gewählt werden können, welche von beiden Spalten x- bzw. y-Spalte ist 
			\item[F70-30] Die Wertepaare sollen als Punkte geplottet werden
			\item[F70-40]Optional sollten die Punkte als Verlaufslinie verbunden werden können; diese Linie sollte beliebig oft ein- und ausblendbar sein
			\item[F70-41]Änderung von [F70-40] zu: grundsätzliches Einblenden einer dünnen Linie, die die hervorgehobenen Punkte aus der Datei verbindet. 
			\item[F70-50] eventuell sollen die Punkte durch Anklicken einzeln selektierbar und dann editierbar sein (löschen, verschieben)
			\item[F70-60] eventuell sollen neue Punkte durch Klicken auf die Grafik eingefügt werden können.
		\end{description}
		\item[F80]Werte sollen aus Sitzungen in eine CSV-Datei exportiert werden können
		\begin{description}
			\item[F80-10] Bei geplotteten Funktionen: auf einem vom Benutzer angegebenen Intervall mit einer vom Benutzer eingegebenen Schrittweite
			\item[F80-11]Zum Exportieren wird der Benutzer in einem separaten Fenster zur Eingabe eines Intervalls und der Schrittweite aufgefordert.
			\item[F80-20] Bei Punkten: alle oder in einem bestimmten Intervall
			\item[F80-21]Zum Exportieren wird der Benutzer in einem separaten Fenster zur Eingabe eines Intervalls und der Schrittweite aufgefordert.
	\end{description}
	\item[F90]Sollte genügend Zeit vorhanden sein, könnte man über die Implementierung von [LF90] diskutieren.
\end{description}
\section{Produktdaten}
\begin{description}
	\item[D10]eventuell sollen Sitzungen gespeichert und geladen werden können. 
	\item[D20]die Werte werden wie in [F80] angegeben exportierbar sein.
\end{description}
\section{Produktleistungen}
\begin{description}
	\item[L10]Eine Berechnung soll vom Benutzer mit Escape abgebrochen werden können.
	\item[L20]Eventuell werden Backups während des Programmablaufs gespeichert und beim Programmstart geladen.
\end{description}
\begin{figure}[htbp]
	\centering
	\includegraphics[width=7cm]{images/GUI1}
	\captionof{figure}[Erster GUI-Entwurf]{Erster Entwurf der GUI}
\end{figure}
\section{Qualitätsanforderungen}
Die Funktionen sollen innerhalb von 5 Sekunden geplottet werden.\\ Genauigkeit bis auf 5 Nachkommastellen (betrifft nur die Berechnungen).
\end{document}